package edu.kjxy.day03.t6;

/**
 * 功能:当一个线程访问object的一个synchronized同步代码块时，另一个线程仍然可以访问该object对象
 * 中的非synchronized（this）同步代码块。
 * 虽然时间缩短，运行效率加快，同步synchronized代码是同步的，并且持有当前调用对象的锁。
 * 作者:程序员欧阳子韩
 * 日期:2024/2/2 18:10
 */
public class RunTest {
    public static void main(String[] args) {
        Task task = new Task();
        MyThread1 thread1 = new MyThread1(task);
        thread1.start();
        MyThread2 thread2 = new MyThread2(task);
        thread2.start();
        try {
            Thread.sleep(10000);
        }catch (InterruptedException e){
            e.printStackTrace();
        }
        long beginTime = CommonUtils.beginTime1;
        if (CommonUtils.beginTime2 < CommonUtils.beginTime1){
            beginTime = CommonUtils.beginTime2;
        }
        long endTime = CommonUtils.endTime1;
        if (CommonUtils.endTime2 > CommonUtils.endTime1){
            endTime = CommonUtils.beginTime2;
        }
        System.out.println("耗时：" + (endTime - beginTime)  + "毫秒");
    }
}
